using System;
using System.Collections.Generic;
using System.Text;

namespace Ghasam.Business.Domain.Entity
{
    public class Employee
    {
        private int id;
        private Education education;
        private EmployeePaymentFrequency paymentFrequency;
        private JobTitle jobTitle;
        private DateTime birthDay;
        private DateTime joinedDate;
        private DateTime? leftDate;
        private string firstName;
        private string lastName;
        private string address;
        private string phone;
        private string ssn;
        private string bornPlace;
        private string identityNumber;
        private bool insurance;
        private bool gender;
        private bool married;
        private bool isFormal;
        private bool isActive;
        private bool isDeleted;
        private float extraPay;
        private string description;
        private DateTime modifyDate;

        public virtual String InsuranceNo { get; set; }

        public virtual DateTime BirthDay
        {
            get { return birthDay; }
            set { birthDay = value; }
        }

        public virtual DateTime ModifyDate
        {
            get { return modifyDate; }
            set { modifyDate = value; }
        }

        public virtual DateTime JoinedDate
        {
            get { return joinedDate; }
            set { joinedDate = value; }
        }

        public virtual DateTime? LeftDate
        {
            get { return leftDate; }
            set { leftDate = value; }
        }

        public virtual bool Insurance
        {
            get { return insurance; }
            set { insurance = value; }
        }

        public virtual bool IsFormal
        {
            get { return isFormal; }
            set { isFormal = value; }
        }

        public virtual bool IsActive
        {
            get { return isActive; }
            set { isActive = value; }
        }

        public virtual bool IsDeleted
        {
            get { return isDeleted; }
            set { isDeleted = value; }
        }

        public virtual bool Gender
        {
            get { return gender; }
            set { gender = value; }
        }

        public virtual bool Married
        {
            get { return married; }
            set { married = value; }
        }
        
        public virtual string BornPlace
        {
            get { return bornPlace; }
            set { bornPlace = value; }
        }

        public virtual string SSN
        {
            get { return ssn; }
            set { ssn = value; }
        }

        public virtual string IdentityNumber
        {
            get { return identityNumber; }
            set { identityNumber = value; }
        }

        public virtual string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }

        public virtual string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }

        public virtual string Phone
        {
            get { return phone; }
            set { phone = value; }
        }

        public virtual string Address
        {
            get { return address; }
            set { address = value; }
        }

        public virtual string Description
        {
            get { return description; }
            set { description = value; }
        }

        public virtual float ExtraPay
        {
            get { return extraPay; }
            set { extraPay = value; }
        }

        public virtual EmployeePaymentFrequency EmployeePaymentFrequency
        {
            get { return paymentFrequency; }
            set { paymentFrequency = value; }
        }

        public virtual Education Education
        {
            get { return education; }
            set { education = value; }
        }

        public virtual JobTitle JobTitle
        {
            get { return jobTitle; }
            set { jobTitle = value; }
        }

        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        public override string ToString() {
            return firstName + " " + lastName;
        }

        public virtual string FullName {
            get { return firstName + " " + lastName; }
        }

    }
}
